package com.eastfair.home.dto;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.eastfair.core.base.entity.Entity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.eastfair.home.enumeration.WorkOvertimeAuditAuditStatusEnum;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 加班审核
 * </p>
 *
 * @author dqq
 * @since 2023-03-07
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "WorkOvertimeAuditSaveDTO", description = "加班审核")
public class WorkOvertimeAuditSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 是否启用（确认状态）：1是 已确认；0否 未确认
     */
    @ApiModelProperty(value = "是否启用（确认状态）：1是 已确认；0否 未确认")
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    private Integer isDeleted;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    private Long subsystemId;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;
    /**
     * 加班单号
     */
    @ApiModelProperty(value = "加班单号")
    @Size(max = 64, message = "加班单号长度不能超过64")
    private String workOvertimeNumber;
    /**
     * 展会ID
     */
    @ApiModelProperty(value = "展会ID")
    private Long exhibitionManageId;
    /**
     * 展会名称
     */
    @ApiModelProperty(value = "展会名称")
    @Size(max = 200, message = "展会名称长度不能超过200")
    private String exhibitionManageName;
    /**
     * 公司ID
     */
    @ApiModelProperty(value = "公司ID")
    private Long companyId;
    /**
     * 公司编码
     */
    @ApiModelProperty(value = "公司编码")
    @Size(max = 64, message = "公司编码长度不能超过64")
    private String companyCode;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    @Size(max = 200, message = "公司名称长度不能超过200")
    private String companyName;
    /**
     * 公司类型
     */
    @ApiModelProperty(value = "公司类型")
    @Size(max = 64, message = "公司类型长度不能超过64")
    private String companyType;
    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    @Size(max = 100, message = "联系人长度不能超过100")
    private String contact;
    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    @Size(max = 100, message = "联系方式长度不能超过100")
    private String phone;
    /**
     * 展厅编码
     */
    @ApiModelProperty(value = "展厅编码")
    @Size(max = 64, message = "展厅编码长度不能超过64")
    private String spaceCode;
    /**
     * 展厅号
     */
    @ApiModelProperty(value = "展厅号")
    @Size(max = 100, message = "展厅号长度不能超过100")
    private String spaceName;
    /**
     * 展位号
     */
    @ApiModelProperty(value = "展位号")
    @Size(max = 100, message = "展位号长度不能超过100")
    private String siteName;
    /**
     * 展位面积
     */
    @ApiModelProperty(value = "展位面积")
    private BigDecimal siteArea;
    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    @Size(max = 500, message = "备注信息长度不能超过500")
    private String remark;
    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    private LocalDateTime reportTime;
    /**
     * 加班日期
     */
    @ApiModelProperty(value = "加班日期")
    private LocalDate overtimeDate;
    /**
     * 加班开始时间
     */
    @ApiModelProperty(value = "加班开始时间")
    @Size(max = 50, message = "加班开始时间长度不能超过50")
    private String overtimeStart;
    /**
     * 加班结束时间
     */
    @ApiModelProperty(value = "加班结束时间")
    @Size(max = 50, message = "加班结束时间长度不能超过50")
    private String overtimeEnd;
    /**
     * 申请加班时长
     */
    @ApiModelProperty(value = "申请加班时长")
    private Double reportOvertimePeriod;
    /**
     * 加班类型
     */
    @ApiModelProperty(value = "加班类型")
    @Size(max = 64, message = "加班类型长度不能超过64")
    private String workOvertimeType;
    /**
     * 主场ID
     */
    @ApiModelProperty(value = "主场ID")
    private Long homeCourtId;
    /**
     * 主场名称
     */
    @ApiModelProperty(value = "主场名称")
    @Size(max = 100, message = "主场名称长度不能超过100")
    private String homeCountName;
    /**
     * 审核状态 #{SUBMIT:待审核;APPROVED:审核通过;NOT_APPROVED:审核未通过}
     */
    @ApiModelProperty(value = "审核状态 #{SUBMIT:待审核;APPROVED:审核通过;NOT_APPROVED:审核未通过}")
    private WorkOvertimeAuditAuditStatusEnum auditStatus;
    /**
     * 审核意见
     */
    @ApiModelProperty(value = "审核意见")
    @Size(max = 200, message = "审核意见长度不能超过200")
    private String auditOpinion;
    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    private LocalDateTime auditTime;
    /**
     * 审核人ID
     */
    @ApiModelProperty(value = "审核人ID")
    private Long auditUserId;
    /**
     * 审核人姓名
     */
    @ApiModelProperty(value = "审核人姓名")
    @Size(max = 64, message = "审核人姓名长度不能超过64")
    private String auditUserName;

}
